package com.zw.stock_sell_storage.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zw.stock_sell_storage.dto.MyPageDto;
import com.zw.stock_sell_storage.dto.UserDto;
import com.zw.stock_sell_storage.dto.ex.UserDtoEx;

/**
 * 用户业务层
 */
public interface IUserService {
    /**
     * 登录时查询用户
     * @param userDto 用户扩展实体对象
     * @return
     */
    UserDtoEx queryUser(UserDto userDto);

    /**
     * 分页查询用户列表
     * @param myPageDto 自定义分页实体对象
     * @return 返回完成分页对象
     */
    Page<UserDto> queryUserList(MyPageDto<UserDto> myPageDto);

    /**
     * 添加用户,需要添加用户与角色中间表
     * @param userDtoEx
     * @return
     */
    boolean addUser(UserDtoEx userDtoEx);

    /**
     * 删除用户，需要删除用户与角色中间表
     * @param userId
     * @return
     */
    boolean rmvUser(int userId);

    /**
     * 通过用户id查询用户信息
     * @param userId
     * @return
     */
    UserDtoEx queryUserById(int userId);

    /**
     * 修改用户信息，先全部删除用户与角色中间表，在重新添加
     * @param userDtoEx 用户扩展实体对象
     * @return 返回是否修改成功
     */
    boolean updateUser(UserDtoEx userDtoEx);

    /**
     * 修改用户密码
     * @param userDto 用户实体对象
     * @return 返回是否修改成功
     */
    boolean changePassWord(UserDto userDto);
}
